//package com.zenchn.redis.service;
//
//import org.springframework.beans.factory.annotation.Value;
//import org.springframework.data.redis.core.RedisTemplate;
//import org.springframework.stereotype.Service;
//
//import javax.annotation.Resource;
//import java.time.LocalDateTime;
//import java.util.concurrent.TimeUnit;
//
///**
// * 手机验证码 redis 缓存操作
// * @author dingxinfa
// * @date 2020-04-29
// */
//@Service
//public class MobilePhoneCaptchaRedisService {
//
//
//    @Value("${spring.redis.cachePrefix}")
//    private String cachePrefix;
//
//    @Resource
//    private RedisTemplate<String,Object> redisTemplate;
//
//    private static final  String CAPTCHA_KEY_PREFIX =":mobile:phone:sms:captcha:";
//
//    private static final  String COUNT_KEY_PREFIX =":mobile:phone:sms:count:";
//    private static final  String SEND_TIME_KEY_PREFIX =":mobile:phone:sms:time:";
//
//
//    private String getCaptchaKey(String suffixKey){
//        return cachePrefix+CAPTCHA_KEY_PREFIX +suffixKey;
//    }
//    private String getCountKey(String suffixKey){
//        return cachePrefix+COUNT_KEY_PREFIX +suffixKey;
//    }
//    private String getTimeKey(String suffixKey){
//        return cachePrefix+SEND_TIME_KEY_PREFIX +suffixKey;
//    }
//    /**
//     * 向redis里存入缓存和设置时间
//     * @param suffixKey  key  后缀
//     * @param values  值
//     */
//    public void setCaptcha(String suffixKey, String values){
//        redisTemplate.opsForValue().set(getCaptchaKey(suffixKey), values,1800, TimeUnit.SECONDS);
//        redisTemplate.opsForValue().set(getTimeKey(suffixKey), LocalDateTime.now(),1800, TimeUnit.SECONDS);
//        redisTemplate.opsForValue().increment(getCountKey(suffixKey), 1);
//        redisTemplate.expire(getCountKey(suffixKey), 1800, TimeUnit.SECONDS);
//
//    }
//
//
//    /***
//     * 通过key  获取缓存
//     * @param suffixKey
//     * @return
//     */
//    public String getCaptcha(String suffixKey){
//        try {
//            return (String) redisTemplate.opsForValue().get(getCaptchaKey(suffixKey));
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//        return null;
//    }
//
//
//    /***
//     * 通过key  获取计数
//     * @param suffixKey
//     * @return
//     */
//    public Integer getCount(String suffixKey){
//        try {
//            return (Integer) redisTemplate.opsForValue().get(getCountKey(suffixKey));
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//        return null;
//    }
//
//    /***
//     * 通过key  获取计数
//     * @param suffixKey
//     * @return
//     */
//    public LocalDateTime getTime(String suffixKey){
//        try {
//            return (LocalDateTime) redisTemplate.opsForValue().get(getTimeKey(suffixKey));
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//        return null;
//    }
//
//    /**
//     * 设置过期时间  默认 半小时
//     */
//    public void refreshCaptcha(String suffixKey){
//        redisTemplate.expire(getCaptchaKey(suffixKey), 1800, TimeUnit.SECONDS);
//        redisTemplate.opsForValue().set(getTimeKey(suffixKey), LocalDateTime.now(),1800, TimeUnit.SECONDS);
//        redisTemplate.opsForValue().increment(getCountKey(suffixKey), 1);
//        redisTemplate.expire(getCountKey(suffixKey), 1800, TimeUnit.SECONDS);
//    }
//
//    /**
//     * 判断缓存是否存在
//     */
//    public Boolean hasKeyCaptcha(String suffixKey){
//        return  redisTemplate.hasKey(getCaptchaKey(suffixKey));
//    }
//    /**
//     * 删除 缓存
//     */
//    public void deleteCaptcha(String suffixKey){
//        redisTemplate.delete(getCountKey(suffixKey));
//        redisTemplate.delete(getCaptchaKey(suffixKey));
//        redisTemplate.delete(getTimeKey(suffixKey));
//    }
//}
